package test.test_7_3;

public class Demo {
    public static void main(String[] args) {
        //无返回值无参数的功能接口
        INoReturnNoParam iNoReturnNoParam = () -> System.out.println("test");
        iNoReturnNoParam.test();

        //无返回值有一个参数的功能接口
        INoReturnOneParam iNoReturnOneParam = (a) -> System.out.println(a);
        iNoReturnOneParam.test(8);

        //无返回值两个参数的功能接口
        INoReturnTwoParam iNoReturnTwoParam = (a,b) -> System.out.println(a + b);
        iNoReturnTwoParam.test(2,2);

        //有返回值无参数的功能接口
        IHasReturnNoParam iHasReturnNoParam = () -> {
            return 123;
        };
        int i = iHasReturnNoParam.test();
        System.out.println(i);

        //有返回值一个参数的功能接口
        IHasReturnOneParam iHasReturnOneParam = (a) -> {
            return a;
        } ;
        int i1 = iHasReturnOneParam.method(456);
        System.out.println(i1);

        ////有返回值两个参数的功能接口
        IHasReturnTwoParam iHasReturnTwoParam =(a, b) -> {
            return a + b;
        };
        int i3 = iHasReturnTwoParam.test(4,4);
        System.out.println(i3);


    }
    //无返回值无参数的功能接口
    @FunctionalInterface
    interface INoReturnNoParam {
        void test();
    }

    //无返回值有一个参数的功能接口
    @FunctionalInterface
    interface INoReturnOneParam {
        void test(int a);
    }

    //无返回值两个参数的功能接口
    @FunctionalInterface
    interface INoReturnTwoParam {
        void test(int a, int b);
    }

    //有返回值无参数的功能接口
    @FunctionalInterface
    interface IHasReturnNoParam {
        int test();
    }

    //有返回值一个参数的功能接口
    @FunctionalInterface
    interface IHasReturnOneParam {
        int method(int a);
    }

    //有返回值两个参数的功能接口
    @FunctionalInterface
    interface IHasReturnTwoParam {
        int test(int a, int b);
    }
}
